package com.chj.utils;

import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class UUIDUtils {
	private static final SecureRandom random = new SecureRandom();

	public static String getUUID() {
		return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
	}

	public static String getUuidWithTime() {
		return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())
				+ (UUID.randomUUID().toString().replaceAll("-", "")
						.toUpperCase());
	}

	public static String getRandomCharAndNumr(Integer length) {
		String str = "";
		for (int i = 0; i < length; i++) {
			boolean b = random.nextBoolean();
			// 第一个字符是字母，第二个字母是数字，确保结果不是全数字格式（静默注册接口需要8位的字母加数字）
			if (i == 0) {
				b = true;
			}
			if (i == 1) {
				b = false;
			}
			if (b) { // 字符串
				int choice = random.nextBoolean() ? 65 : 97; // 取得65大写字母还是97小写字母
				str += (char) (choice + random.nextInt(26));// 取得大写字母
			} else { // 数字
				str += String.valueOf(random.nextInt(10));
			}
		}
		return str;
	}

	public static void main(String[] args) {
		System.out.println(getUuidWithTime());
		System.out.println(getRandomCharAndNumr(8));
	}
}
